package com.scaffold.commons;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 计数器
 * @author wangjg
 */
public class ReportCounter {

	private Map<String,Double> countMap = new LinkedHashMap<String,Double>();

	public void add(String name, Object o){
		if(o==null){
			return;
		}
		if(o instanceof Integer){
			this.add(name, (Integer)o);
		}else if(o instanceof Long){
			this.add(name, (Long)o);
		}else if(o instanceof Float){
			this.add(name, (Float)o);
		}else if(o instanceof Double){
			this.add(name, (Double)o);
		}
	}
	
	public void add(String name, Integer n){
		this.add(name, n.doubleValue());
	}
	public void add(String name, Long n){
		this.add(name, n.doubleValue());
	}
	public void add(String name, Float n){
		this.add(name, n.doubleValue());
	}
	public void add(String name, Double n){
		Double d = this.countMap.get(name);
		if(d==null){
			d = 0.0;
		}
		d += n;
		this.countMap.put(name, d);
	}
	
	public void set(String name, Object value){
		this.countMap.put(name, (Double) value);
	}
	
	public Double get(String name){
		return this.countMap.get(name);
	}

	public Map<String, Double> getCountMap() {
		return countMap;
	}
	
}
